package com.mzy.datepackage.M2022.Aug.thirty_first.service.tasks;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 视频应用
 * */
@Data
@ApiModel(value = "视频应用服务")
public class VideoTask {

    /**
     * 服务id，不可重复
     * */
    @ApiModelProperty(value = "唯一ID")
    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
    private int id;

    /**
     * 服务名称，不可重复
     * */
    @ApiModelProperty(value = "服务名称")
//    @NotNull(message = "服务名称不能为空")
    private String name;

    /**
     * 服务描述
     * */
    @ApiModelProperty(value = "服务描述")
    private String descr;

    /**
     * 服务状态，run/stop
     * */
    @ApiModelProperty(value = "服务状态，stop停止，run表示运行中")
    private String state;

    /**
     * 代理IP
     * */
    @ApiModelProperty(value = "代理IP地址")
    private String listenIp;

    /**
     * 代理PORT
     * */
    @ApiModelProperty(value = "代理端口号")
    private int listenPort;

    /**
     * 目的转发IP
     * */
    @ApiModelProperty(value = "目的转发IP地址")
    private String destIp;

    /**
     * 目的转发端口
     * */
    @ApiModelProperty(value = "目的转发端口")
    private int destPort;

    /**
     * 网络协议
     * */
    @ApiModelProperty(value = "网络协议，不能为空")
    private String protocol;


    /**
     * 视频流格式, CMSMQ, CMS, VTDU, VRMRTSP, PTZ, VRM, NVR, DVR, DVSRTSP, DVS, HTTP
     */
    @ApiModelProperty(value = "视频流格式")
    private String videoType;

    /**
     * 视频厂商信令格式;0海康V3.0 1海康V2.0 10高新兴 11海信V4.0 12肇庆单平台 13金鹏new 14重庆海康 15德清海康 16从化视频 17云浮视频 18顺德贝尔 19反向信产V3
     * 2华三U1 20佛山 21科达 22贝尔V3.5 23东莞大华 24扩展1 25扩展2 26佳都新太 27扩展4 28扩展5 29扩展6 3信产V3 4新太 5烽火3.0 6贝尔V2.1 7贝尔V2.16
     * 8测试视频 9金鹏
     * */
    @ApiModelProperty(value = "视频厂商信令格式")
    private int vendorType;

    /**
     * 视频编码格式，3GP ASF AVI FLV H232 H264 MOV MP4 MPEG OQG R4 RMVB WMV
     * */
    @ApiModelProperty(value = "视频编码格式")
    private String codeType;

    /**
     * 视频传输控制
     * */
    @ApiModelProperty(value = "视频传输控制:1允许,0禁止")
    private int videoSend;

    /**
     * 信令控制
     * */
    @ApiModelProperty(value = "信令控制:0开启,1关闭")
    private int signSend;

    /**
     * 视频传输方向, 0: 前->后, 1: 后->前
     */
    @ApiModelProperty(value = "视频传输方向")
    private int type;


    public void setVideoTask(int id, String name, String descr, String state, String listenIp, int listenPort, String destIp, int destPort, String protocol,
                             String videoType, int vendorType, String codeType) {
        this.id = id;
        this.name = name;
        this.descr = descr;
        this.state = state;
        this.listenIp = listenIp;
        this.listenPort = listenPort;
        this.destIp = destIp;
        this.destPort = destPort;
        this.protocol = protocol;
        this.videoType = videoType;
        this.vendorType = vendorType;
        this.codeType = codeType;
    }

}
